﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

namespace T.FAS.Runtime.Metadata.Entity
{
    [Serializable]
    public class TMetaDataContent : IMetaDataContent
    {
        /// <summary>
        /// ID
        /// </summary>        
        public string ID { get; set; }

        /// <summary>
        /// 元数据GUID
        /// </summary>        
        public string MetaDataID { get; set; }

        /// <summary>
        /// 元数据ID
        /// </summary>        
        public string MetaDataCode { get; set; }

        /// <summary>
        /// 元数据ID
        /// </summary>        
        public string MetaDataName { get; set; }

        /// <summary>
        /// DataID
        /// </summary>        
        public string DataID { get; set; }        

        /// <summary>
        /// 创建时间
        /// </summary>        
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建者
        /// </summary>        
        public string Creator { get; set; }

        /// <summary>
        /// 最后修改时间
        /// </summary>        
        public DateTime LastModifyTime { get; set; }

        /// <summary>
        /// 最后修改者
        /// </summary>        
        public string LastModifier { get; set; }

        ///// <summary>
        ///// 结构的当前版本。以5.0.0.0开始，具体元数据的XML存储结构每变动一次，最后一位版本号+1，变为5.0.0.1。
        ///// 当有大的版本变动时，所有的版本在第3位一起变动。
        ///// </summary>
        //public Version CurrentVersion { get; set; }

        ///// <summary>
        ///// 能兼容处理的最早版本。
        ///// </summary>
        //public Version CompatibleMinVersion { get; set; }

        ///// <summary>
        ///// 支持引擎的版本
        ///// </summary>
        //public Version EngineVersion { get; set; }

        /// <summary>
        /// 对应的元数据
        /// </summary>
        public IMetaData MetaData { get; set; }

        public string ProjectBranchID { get; set; }

        public event PropertyChangedEventHandler PropertyChanged;

        public object Clone()
        {
            return MemberwiseClone();
        }
    }
}
